1. Field of the Disclosure
The present disclosure relates to apparatus, systems, and methods for providing a memory efficient cache.
2. Related Disclosure
A computer system can include a storage system that can maintain data. A storage system can include one or more types of storage devices such as, for example, hard disk drives (HDDs) and optical drives. These types of storage devices are inexpensive and can hold large amount of data. However, they are slow compared to other components used in a computing system. For example, a consumer hard drive can store terabytes of data cheaply, but has a maximum theoretical transfer rate of 300 megabytes (MB) per second.
Other types of storage devices are faster compared to HDDs and optical drives. For example, a random access memory (RAM) has a maximum theoretical transfer rate of, for example, 12.8 gigabytes (GB) per second. Even a solid state drive (SSD) is faster than the HDDs and optical drives. However, these devices tend to be more expensive.
Some integrated memory devices can be even faster than RAMs or SSDs. For example, specialized on-chip memory in a central processing unit (CPU) can exhibit even better performance, with a transfer rate of 16 GB per second, or over fifty times faster than off-chip storage devices. However, on-chip memory is often extremely expensive.
Because memory devices exhibit this tradeoff between price and performance, a technique known as caching may be used to increase, or accelerate, the overall performance of a storage system. Caching is based on an observation that the same data may be used over and over again within a short period of time by a host device, such as a software application and/or an operating system running on the host device, or by another hardware component. Therefore, a storage system can use a small amount of fast-access memory (referred to as a cache) to store the regularly accessed data so that the regularly accessed data can be readily provided to computing systems.